home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2004 April / Gamestar_61_2004-04_dvdb.iso / DVDStar / Editace / hltp.exe / {app} / Source Code / Zoners Half-Life Tools / hlcsg / hullfile.cpp < prev    next >
C/C++ Source or Header  |  2001-12-26  |  2KB  |  67 lines

  1. #include "csg.h"
  2.  
  3. vec3_t          g_hull_size[NUM_HULLS][2] = 
  4. {
  5.     {// 0x0x0
  6.         {0, 0, 0},          {0, 0, 0}
  7.     }
  8.     ,
  9.     {// 32x32x72
  10.         {-16, -16, -36},    {16, 16, 36}
  11.     }
  12.     ,                                                      
  13.     {// 64x64x64
  14.         {-32, -32, -32},    {32, 32, 32}
  15.     }
  16.     ,                                                      
  17.     {// 32x32x36
  18.         {-16, -16, -18},    {16, 16, 18}
  19.     }                                                     
  20. };
  21.  
  22. void        LoadHullfile(const char* filename)
  23. {
  24.     if (filename == NULL)
  25.     {
  26.         return;
  27.     }
  28.  
  29.     if (q_exists(filename))
  30.     {
  31.         Log("Loading hull definitions from '%s'\n", filename);
  32.     }
  33.     else
  34.     {
  35.         Error("Could not find hull definition file '%s'\n", filename);
  36.         return;
  37.     }
  38.  
  39.     float x,y,z;
  40.  
  41.     FILE* file = fopen(filename, "r");
  42.  
  43.     int count;
  44.     int i;
  45.     // Skip hull 0 (visibile polygons)
  46.     for (i=1; i<NUM_HULLS; i++)
  47.     {
  48.         count = fscanf(file, "%f %f %f\n", &x, &y, &z);
  49.         if (count != 3)
  50.         {
  51.             Error("Could not parse hull definition file '%s' (%d, %d)\n", filename, i, count);
  52.         }
  53.         x *= 0.5;
  54.         y *= 0.5;
  55.         z *= 0.5;
  56.  
  57.         g_hull_size[i][0][0] = -x;
  58.         g_hull_size[i][0][1] = -y;
  59.         g_hull_size[i][0][2] = -z;
  60.  
  61.         g_hull_size[i][1][0] = x;
  62.         g_hull_size[i][1][1] = y;
  63.         g_hull_size[i][1][2] = z;
  64.     }
  65.  
  66.     fclose(file);
  67. }